package Pgrade;



import java.sql.SQLException;
import java.util.List;
import java.util.Scanner;

public class Menu
//public class是JAVA定义的
// Java不支持go to语句，代之以提供break和continue语句以及异常处理
// Java能够自动处理对象的引用和间接引用，
// 实现自动的无用单元收集，
// 使用的是public class声明
// 类名称应该与文件名称完全一致
// 即应该使用"HelloDemo.java"表示类的名称
// 如果类的声明使用了class的话，则类名称可以与文件名称不一致
// 就可以在一个源文件里有多个public类
// 因为在不同的包中访问的类只能是public
// 没有加public 的只有包的访问权限
// public类的作用出现的
{
    public static void main(String[] args) throws SQLException, ClassNotFoundException
    //声明主函数为public就是告诉其他的类可以访问这个函数。
    //告知编译器main方法是一个静态方法。
    // main方法中的代码是存储在静态存储区（方法区）的
    // 不需要通过实例化来访问，可直接通过类名.main()直接访问。
    //void关键字表明main()的返回值是无类型。
    //main是jvm识别的特殊方法名，是程序的入口方法。
    //同一个.java文件可以有多个main方法，
    // 只有与文件名相同的用public修饰的类中的main()方法才能作为整个程序的入口方法
    //参数String[] args，
    // 字符串数组参数args为用户在命令行状态下与程序交互提供了一种手段。
    //另外一种作用就是像正常函数方法一样调用其函数，
    // static声明的变量或者方法，
    // 是类方法或者说是类变量，不需要实例化就可以直接使用
    // 只有有main()方法的java程序才能够被java虚拟机欲行
    // 对于里面的参数及修饰符
    //public:表示的这个程序的访问权限,
    //static:表明方法是静态的,不依赖类的对象的,是属于类的,
    // 在类加载的时候main()方法也随着加载到内存中去
    //void:main()方法是不需要返回值的
    //String[] args:从控制台接收参数
    {
        Scanner sc = new Scanner(System.in);

        while (true) {
            // 进行实例化把用类创建对象的过程称为实例化，是将一个抽象的概念类，具体到该类实物
            // TestMain4 tt = new TestMain4();
            // 调用方法
            //  tt.Time();

            Time.main(null);
            System.out.println("---------------------------------");
            System.out.println("---------------------------------");
            System.out.println("---------学生成绩系统模块-------------");
            System.out.println("------------1.登录----------------");
            System.out.println("------------0.退出----------------");
            System.out.println("---------------------------------");
            System.out.println("---------------------------------");
            String str = sc.nextLine();
            //字符串 str = sc.nextLine
            if ("1".equals(str)) { // "1" == str不允许
                while (true)
                //循环语句
                {
                    System.out.println("--------请输入用户名----------");
                    //请用户输入用户名
                    String username = sc.nextLine();
                    System.out.println("--------请输入密码-----------");
                    //请用户输入密码
                    String password = sc.nextLine();
                    //字符串 password = sc.nextLine
                    LoginDao dao = new LoginDao();
                    List<UserPojo> ulist = dao.findByUname(username);
                    //进行实例调用

                    if (ulist.size() == 1)
                    //条件语句
                    {
                        if (ulist.get(0).getPassword().equals(password)) {
                            System.out.println("登录成功");
                            //登录成功
                            while (true)
                            {
                                System.out.println("-------1.添加成绩信息------");
                                //添加成绩信息
                                System.out.println("-------2.删除成绩信息------");
                                //删除成绩信息
                                System.out.println("-------3.修改成绩------");
                                //修改成绩信息
                                System.out.println("-------4.查询成绩------");
                                //查询成绩信息
                                System.out.println("-------5.退出------");
                                //退出程序
                                System.out.println("-------------");
                                //输入
                                System.out.println("-------------");
                                //输入
                                String str1 = sc.nextLine();
                                //字符串 str1=sc.nextLine
                                if ("1".equals(str1))
                                //条件语句
                                {
                                    System.out.println("-----添加成绩信息：学号--------");
                                    //添加成绩信息 学号
                                    String v1 = sc.nextLine();
                                    System.out.println("-----添加成绩信息：课程号--------");
                                    //添加成绩信息 课程号
                                    String v2 = sc.nextLine();
                                    /*System.out.println("-----添加学生信息：出生日期--------");
                                    String v3 = sc.nextLine();
                                    System.out.println("-----添加学生信息：性别--------");
                                    String v4 = sc.nextLine();*/
                                    System.out.println("-----添加成绩信息：成绩--------");
                                    int v3 = Integer.parseInt(sc.nextLine());
                                    /*System.out.println("-----添加学生信息：专业--------");
                                    String v6 = sc.nextLine();
                                    System.out.println("-----添加学生信息：班号----------");
                                    int v7 = Integer.parseInt(sc.nextLine());*/
                                    // int 变更了几条记录
                                    int r = dao.addUserInfo(v1, v2, v3);
                                    //定义 v1,v2,v3
                                    System.out.println("添加成了" + r + "条数据");
                                    //添加成了" + r + "条数据
                                }
                                else if ("2".equals(str1)) {
                                    deletePgrade();
                                }
                                else if ("3".equals(str1)) {
                                    UpdatePgrade();
                                }
                                else if ("4".equals(str1)) {
                                    //                                   SelectStudent();
                                    System.out.println("--------请输入查询学号----------");
                                    //请输入查询学号
                                    String sno = sc.nextLine();
                                    //字符串
                                    LoginDao dao1 = new LoginDao();
                                    List<PgradePojo> slist = dao1.selectBySno(sno);
                                    //实例调用 列表

                                }
                                else if ("5".equals(str1))
                                //判断选择语句
                                {
                                    return;
                                    //结束进程
                                }
                            }
                        }else{
                            System.out.println("用户名存在，密码不正确");
                            //用户名存在，密码不正确
                        }
                    }else {
                        System.out.println("有问题了呀！用户名不存在");
                        //有问题了呀！用户名不存在
                    }
                    }
                   }else if ("0".equals(str))
                   //判断语句
                   {
                System.exit(0);
                //退出程序
                } else
                    //否则语句
                    {
                System.out.println("请重新输入");
                //输入语句
            }
            }

            }

    private static void UpdatePgrade() throws SQLException
    //声明当前被修饰的变量，方法为私有的
    {
        while(true)
        //循环语句
        {
            System.out.println("--------请输入学号--------------");
            //请输入学号
            System.out.println("--------0.退出--------------");
            //退出
            // 监控控制台
            Scanner sc = new Scanner(System.in);
            //          int sgrade = Integer.parseInt(sc.nextLine());
            String sno = sc.nextLine();
            //字符串 sno = sc.nextLine
            if ("0".equals(sno))
            //条件语句
            {
                return; // 结束进程
            } else
                //否则语句
                {
                // 数据的操作
                PgradeDao dao = new PgradeDao();
                System.out.println("--------输入要修改的本学期成绩-----------");
                //输入要修改的本学期成绩
                int grade = Integer.parseInt(sc.nextLine());
                //int函数
                int r = dao.updateBySno(sno,grade);
                //int函数
                if (r == 0) {
                    System.out.println("学号不存在");
                    //学号不存在
                } else {
                    System.out.println("修改成绩成功" + r + "条");
                    //修改成绩成功" + r + "条
                }
            }
        }
    }

    private static void deletePgrade() throws SQLException
    //声明当前被修饰的变量，方法为私有的
    {
        while (true) {
            System.out.println("--------请输入学号--------------");
            //请输入学号
            System.out.println("--------0.退出--------------");
            //退出进程
            // 监控控制台
            Scanner sc = new Scanner(System.in);
            String sno = sc.nextLine();
            //字符串sno = sc.nextLine
            if ("0".equals(sno))
            //条件语句
            {
                return; // 结束
            } else {
                // 数据的操作
                PgradeDao dao = new PgradeDao();
                int r = dao.deleteBySno(sno);
                if (r == 0)
                //条件语句
                {
                    System.out.println("学号不存在");
                } else
                    //条件语句
                    {
                    System.out.println("删除成功" + r + "条");
                    //删除成功" + r + "条
                }
            }
        }
    }
}


